
	<link rel="stylesheet" type="text/css" href="/stylesheets/learn.css" />

	<h1 class='med'>Overview <img src='/images/exclaim_med_up.png' /></h1>
	
	<ul>
		<li><a href='#features'>Features</a></li>
		<li><a href='#emerging'>Emerging JavaScript Best Practices</a></li>
		<li><a href='#javascript'>JavaScript Testing Sucks</a></li>
		<li><a href='#rapidly'>Rapidly Fix Problems</a></li>
		<li><a href='#resources'>Related Learning</a></li>
	</ul>
	
	<h2 id='features'>Features</h2>
	
	<h3>Free</h3>
	<p>DamnIT is and always will be a free service.</p>
	
	<h3>Simple set up</h3>
	<p>For IE and Mozilla, all you have to do is include a script.  For 
	other browsers, simply add try...catch blocks.</p>
	
	<h3>Fix bugs faster</h3>
	<p>DamnIT's error <a href='#email'>notification emails</a> have as much information as possible so you can track down the 
	problem quickly.  Error details include: browser, page, html content, description, message, file, line, and 
	stack (depending on browser).</p>
	
	<h3>Manage your errors</h3>
	
	<p>DamnIT brings you lightweight issue management.  Assign each error a status (new, accepted, resolved, closed) 
	and keep track of stats for each browser, week, month, and status level.</p>
	
	<div class='image code_caption'>
		<img src='/images/documentation/stats.png' />
		<div class='caption'>Error admin screen</div>
	</div>
	
	<h3>Unobtrusive and Customizable</h3>
	<p>DamnIT prompts users to explain their actions preceding the error with a small popup on 
	the bottom of the screen that disappears in several seconds.  The popup stays out of the 
	way, and it can be deactivated or customized.</p>
	
	<div class='image code_caption'>
		<img src='/images/notification.png' />
		<div class='caption'>User prompt</div>
	</div>
	
	<h3>Prioritize</h3>
	<p>Focus on bugs that need the most attention.  DamnIT identifies your most 
	common errors and your most recent errors.</p>
	
	<div class='image code_caption'>
		<img src='/images/documentation/stats2.png' />
		<div class='caption'>Most recent &amp; common errors</div>
	</div>
	
	<h2 id='emerging'>Emerging JavaScript Best Practices</h2>
	<p>Exception notification is an accepted best practice in most server-side 
	frameworks.  However, JavaScript lacks formal development practices in many 
	areas, exception notification and testing being two good examples.  As more application 
	functionality shifts to the client, knowing when errors occur in your production 
	applications is becoming crucial.</p>
	
	<p>DamnIT provides you immediate and organized error information when something goes 
	wrong.  DamnIT is part of <a href='http://javascriptmvc.com'>JavaScriptMVC</a>, the framework that aims to bring more formal 
	development practices to JavaScript development.</p>
	
	<h2 id='javascript'>JavaScript Testing Sucks</h2>
	<p>It's nearly impossible to build an application that works perfectly across 
	all browsers.  There are simply too many browsers variations and too many 
	features to test.  To compound the problem, most JavaScript applications are UI 
	heavy, and automating UI testing is difficult.  Developers often do their best with 
	manual test scripts, but humans often make mistakes.</p>
	
	<p>DamnIT takes the human error out of JavaScript testing.  Without DamnIT, Beta testers might have to 
	decide if the page flicker they just saw was really a bug or not.  DamnIT makes this decision for them, 
	sending you an email whenever there is a JavaScript error.  In addition, the emails you'll receive 
	from DamnIT will be filled with as much information as possible to help you track 
	down the problem.</p>
	
	<p>Without DamnIT, you might get the following email from a beta tester:</p>
	
	<div class='email'><h1>Screen flicker bug</h1>
	<pre><code><span class='from'>tester@gmail.com</span> to me

I clicked the 2nd folder on the page, the screen flickered, and then nothing happened.  
I think it was supposed to open and show my files.</code></pre></div>
	
	<p>With DamnIT, a plethora of debugging information will help you fix the problem in a fraction of the time:</p>
	
	<div class='email'><h1>ApplicationError on: https://damnit.jupiterit.com/home/demo</h1>
	<pre id='email'><code><span class='from'>accounts@jupiterit.com</span> to me

<span class='header'>Browser:</span>
    Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) 
       Gecko/20080201 Firefox/2.0.0.12
<span class='header'>Page:</span>
    https://fit.jupiterit.com/downloads/demo.html#
<span class='header'>subject:</span>
    ApplicationError on: https://fit.jupiterit.com/downloads/demo.html#
<span class='header'>Description:</span>
   I clicked the 2nd folder on the page, the screen flickered, and then nothing happened.  
   I think it was supposed to open and show my files.
<span class='header'>message:</span>
    some_variable is not defined
<span class='header'>fileName:</span>
    https://fit.jupiterit.com/downloads/demo.js
<span class='header'>lineNumber:</span>
    3
<span class='header'>stack:</span>
    ()@https://fit.jupiterit.com/downloads/demo.js:3
onclick([object MouseEvent])@https://fit.jupiterit.com/downloads/demo.html#:1
@:0
<span class='header'>HTML Content:</span>
    &lt;head&gt;&lt;/head&gt;&lt;body&gt;
       &lt;a href="#" onclick="breakme()"&gt;Click here to cause an error&lt;/a&gt;
       &lt;script type="text/javascript" src="https://damnit.jupiterit.com/damnit.js?
          68dee8a700d952d69350c23e67eb456648a5ceee"&gt;&lt;/script&gt;
       &lt;script type="text/javascript" src="demo.js"&gt;&lt;/script&gt;
    &lt;/body&gt;</code></pre></div>

	<h2 id='rapidly'>Rapidly Fix Problems</h2>
	<p>DamnIT provides you with instant notification when there are problems with your 
	application.  When the unexpected happens,  such as a new release of Opera with a slightly 
	different implementation of split(), you'll know the app is breaking right away.  Without DamnIT, broken features
	could go unnoticed for weeks.  Automated exception notification lets you fix bugs immediately, 
	before they become a bigger headache.</p>

	<h2 id='resources'>Related Learning</h2>
	
		<h3><a href='/home/demo'>Demo</a></h3>
		<p>See it in action.  Then <a href='http://javascriptmvc.googlecode.com/files/damnit_demo.html'>download the demo code</a> and start using it yourself.</p>
		
		<h3><a href='/home/documentation'>Documentation</a></h3>
		<p>Instructions for getting set up, usage across different browsers, and adding your own functionality to DamnIT notifications.</p>

		<h3><a href='http://javascriptmvc.com'>JavaScriptMVC</a></h3>
		<p>DamnIT is a part of the JavaScriptMVC plugin.  Check out ways to integrate other JavaScriptMVC plugins.</p>
